#include"BlockQueue.hpp"

void *ci(void *arg)
{
    BlockQueue*bq=(BlockQueue*)arg;
    while(1)
    {
        sleep(1);
        int m=bq->Pop();
       
        std::cout<<"消费一个数字"<<m<<std::endl;
    }
}
int i=0;
void *pi(void *arg)
{
    BlockQueue*bq=(BlockQueue*)arg;
    while(1)
    {
      //  sleep(2);
       bq->Equeue(i);
        std::cout<<"生成一个数字:"<<i<<std::endl;
       // bq->Equeue(i);
        i++;
    }
}
int main()
{
    BlockQueue bq;
    pthread_t c[2],p[3];
    pthread_create(&c[0],nullptr,ci,&bq);
    pthread_create(&c[1],nullptr,ci,&bq);
    pthread_create(&p[0],nullptr,pi,&bq);
    pthread_create(&p[1],nullptr,pi,&bq);
    pthread_create(&p[2],nullptr,pi,&bq);
    pthread_join(c[0],nullptr);
    pthread_join(c[1],nullptr);
    pthread_join(p[0],nullptr);
    pthread_join(p[1],nullptr);
    pthread_join(p[2],nullptr);
    return 0;

}